

Changelog  for Netica-C

Note that not all releases were made publicly available.

5.10  2013-02-07
- Fixed bug: Generated error #3175 when trying to generate the visual part of a net (e.g. with SetNodeVisPosition_bn) that didn't yet have any visual part, and the net had non-ascii unicode (occured rarely - seemed to only affect the Windows 64 bit DLL).

5.09  No separate release
- GetNodeExpectedValue_bn now also handles discrete nodes with no levels defined (uses state indexes as numeric point values).

5.08  No separate release
- Improved reading of cases from a database (i.e. a case-set created by AddDBCasesToCaseset_cs), especially from an Excel file, and the associated error messages.
- AddNodesFromDB_bn can handle database (but not text) case files with UVF format entries, to add all the states mentioned in likelihood findings.
- Introduced  long_ns  and  ticker_ns  (both defined as long) and replaced some long and int with it in Netica.h

5.07  No separate release
- Speeded up EM learning from data, and gradient ascent learning.
- Improved CreateCustomReport_bn:
    - Added Report tag 'foreach', and ability to loop over the nodes of a nodeset and nodes of a net.
    - Added Node tags: "ExpectedUtility", "ExpectedUtilityList", "BestChoice".
    - Added Net tag "UtilitiesTable", to be used for decision nodes instead of BeliefsTable.
    - Added tags  "StateLabel"  and  "Belief" to do a single state at a time.
    - Changed the way some arguments work, including "Absent", "Empty" (replaces "ShowMissing").
    - Defaults for TextFormat, HtmlFormat can be influenced by file extension
    - When making a list (e.g. BeliefsList), if no separator was specified, it used to concatenate, but now it separates with "  ".  If you want it to concatenate, you can put  Separator=""

5.06  No separate release
- Change in reading case files.  Now treats tabs as always separators, instead of sometimes as just whitespace (so 2 in a row will give an empty entry).
- Fixed: Case files with old MacOS line ends (ie, \r) didn't work (gave message that file had no cases).
- Fixed: Some case files with empty fields (eg, 2 commas in a row) didnt work
- Now does more accurate calculations for sensitivity variance reduction, especially the target node with itself.  Discretization intervals are averaged over.
- CreateCustomReport_bn when producing report on overall net has wording changed slightly, and now its "Separate networks" value properly handles constant nodes with links.
- GetNodeVisStyle_bn now returns "None" if there is no visual information, instead of "Default".
- GetNetNodes_bn now works like GetNetNodes2_bn with no options (ie, it doesnt include documentation nodes), but there is a way to easily defined to the old way in Netica.h
- Added built-in functions for equations:  logit, logistic (aka expit, sigmoid), LogisticDist, mag (aka hypot, vecmag), avg (which takes the average of its arguments).
- CreateCustomReport_bn:  Added "ExpectedValue", "Variance" and "StandardDeviation" keywords to custom report function.  Changed name of "VarianceReal" to "VarianceReduction" and "BeliefVariance" to "BeliefVarianceReduction".
- Now if GetNodeExpectedValue_bn returns UNDEF_DBL (indicating unknown), it will also set its *STD_DEV argument to UNDEF_DBL.
- Speeded up some built-in equation functions

5.05  No separate release
- Prevents compiling a net having a constant node with a link into or out of it by generating error #3647.  This is to make way for ver6, where those links will no longer be ignored.

5.04  2012-01-21
- Many major speed improvments, especially when operating in a multi-threaded environment.
- Further improvements to time-series net and dynamic bayes net (DBN) capability 
  (e.g. titles of nodes are now augmented with their point in time during expansion).
- Improved or added functions ExpandNet_bn, SetNodeInputDelay_bn, SetNodePersistance_bn, GetNodeAtTime_bn.
- Can enter "action values" to nodes, which follow semantics of Pearl's do-calculus.  
  Added functions: EnterAction_bn, EnterActionValue_bn, EnterActionRandomized_bn
- Major improvements to GenerateRandomCase_bn (including using some determinstic forward propagation for continuous real values), and fixing some bugs:
    Generating a random case by forward sampling didnt work right if there was a CPT with UNDEF_PROB, where the whole row wasnt UNDEF_PROB
    Generating a random case by join tree could fail with an error #2078
- Major upgrade to callback system in speed and functionality.  
  One result is that when nodes and nets are duplicated, now their listeners are duplicated as well.
- Added function RetractFindingsOfNodes to NeticaEx.
- Improved reading values from case files and its error reporting.  
  Now handles ">70" if there is a discrete node with the state title ">70" (earlier it tried to interpret that as a UVF value)
- Fixed problem in the way versions 5.02 and 5.03 saved printer settings to file, that made it not readable by older versions of Netica (example 4.16).
- Expanded on the 'options' parameter for CopyNet_bn, CopyNodes_bn, which can control what gets copied.
	
5.03  2011-08-11
- When entering a calibration finding that conflicts with the finding already at the node, now removes the original finding first.
- Can now learn from cases when starting with no CPT supplied, but experience value supplied (table with all entries the same).
- While EM learning from a case file having a case inconsistent with the Bayes net, now puts the IDnum of the case in the error message.

5.02  2011-04-09
- Fixed a memory leak which occured (only) when reversing links in a net with visual information.
- GetStateNamed_bn couldn't handle NULL for 'name'
- Major improvements to time-series net and dynamic bayes net (DBN) capability.  
  Expand net now takes a burn-in time to generate initial-state nodes, etc.  
- Improved Netica's architecture for pseudo-random operations, and made it possible to act deterministically under multi-threading
- Added the random funcs: NewRandomGenerator_ns, DeleteRandomGen_ns, SetNetRandomGen_bn, GetRandomGenState_ns, GenerateRandomNumbers_ns.  
  GenerateRandomCase_bn now takes a randgen_ns.
- Added ControlConcurrency_ns, and made all of Netica able to concurrently run Bayes nets in separate threads if desired.

